package com.liujun.io.nio.trans.server;

import java.io.IOException;
import java.nio.channels.Selector;

import com.liujun.io.nio.trans.conn.TransConnectManager;

/**
 * 中间转换服务 源文件名：MidTransServer.java 文件版本：1.0.0 创建作者：liujun 创建日期：2016年8月24日
 * 修改作者：liujun 修改日期：2016年8月24日 文件描述：liujun 版权所有：Copyright 2016 zjhz, Inc. All
 * Rights Reserved.
 */
public class MidTransServer {

	/**
	 * 进行中间转换服务的 方法描述
	 * 
	 * @throws IOException
	 * @创建日期 2016年8月18日
	 */
	public void run() throws IOException {

		// 连接通道使用一个多路选择器
		Selector connSelector = Selector.open();
		// 连接通道使用一个多路选择器
		Selector processSelect = Selector.open();

		// 创建本地中转服务信息
		MultiplexerPortMsgService port1Init = new MultiplexerPortMsgService();
		port1Init.serverInit(connSelector);

		// 创建通道管理器
		TransConnectManager tan = new TransConnectManager();

		// 连接的多路选择器的遍历
		MultiConnectionervice connSelect = new MultiConnectionervice(connSelector, tan, processSelect);
		new Thread(connSelect, "MidTransServer Process connect port -001").start();

		// 进行数据处理多路选择器的遍历
		MultiplexerAllService processService = new MultiplexerAllService(processSelect);
		new Thread(processService, "MidTransServer Process port 9001 -001").start();

		System.out.println("服务端启动成功。。。。");
	}

	public static void main(String[] args) throws IOException {

		MidTransServer trans = new MidTransServer();
		trans.run();
	}
}
